package com.dz.syndata.util;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtils {
    private Date strtodate;

    // 时间戳转换成时间
    public static Date convertTimeStamp(long timeStamp) {
        String dateForm = null;
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        return new Date(Long.parseLong(String.valueOf(timeStamp)));
    }

    /**
     * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
     * *
     * * @param strDate
     * * @return
     */
    public static Date strToDateLong(String strDate) {
        Date strtodate = null;
        if (strDate != null) {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            ParsePosition pos = new ParsePosition(0);
            strtodate = formatter.parse(strDate, pos);
        }

        return strtodate;
    }

    /**
     * 前一个时间与后一个时间进行比对
     *
     * @param beginDate 开始时间
     * @param endDate   结束时间
     * @return true 表示前一个参数比后一个小 ，反之亦然
     */
    public static boolean compareToDate(Date beginDate, Date endDate) {
        if (beginDate == null) {
            return true;
        }
        return beginDate.before(endDate);
    }

    /**
     * 计算时间小时
     * 07:00:19至21:00 属于正常工作范围时间内
     *
     * @return
     */
    public static boolean isCompareHourDate() {

        String date1 = "07:00:00";
        String date2 = systemDateTime();
//        String date2="21:30:00";

        SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");

        Date start = null;
        try {
            start = df.parse(date1);
            Date end = df.parse(date2);

            long cha = end.getTime() - start.getTime();

            if (cha < 0) {

                return false;

            }
            double result = cha * 1.0 / (1000 * 60 * 60);
            if (result <= 14) {

                return true;

            } else {

                return false;

            }
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return false;
    }

    /**
     * 获取系统时间
     *
     * @return
     */
    public static String systemDateTime() {
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");// 格式化时间

//        sdf.applyPattern("yyyy-MM-dd HH:mm:ss a");// a为am/pm的标记
        Date date = new Date();// 获取当前时间
//        System.out.println("现在时间：" + sdf.format(date)); // 输出已经格式化的现在时间（24小时制）
        return sdf.format(date);
    }

    public static void main(String[] args) {
        String beginTime = new String("07:00:19");
        String endTime = new String("21:00:00");
//        String endTime = systemDateTime();
        System.out.println(isCompareHourDate() + "");

//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        try {
//            Date sd1=df.parse(beginTime);
//            Date sd2=df.parse(endTime);
//           System.out.println(compareToDate(sd1,sd2));
//        } catch (ParseException e) {
//            e.printStackTrace();
//        }

    }
}
